package cn.sxt.users.service;

import java.util.List;
import java.util.Map;

import com.alibaba.fastjson.JSONObject;

import cn.sxt.common.util.PageInfoUtil;
import cn.sxt.users.pojo.AAdmins;
import cn.sxt.users.pojo.AMenu;
import cn.sxt.users.pojo.ARole;

/**
 * 和用户相关的Service
 * @author wangshSxt
 *
 */
public interface IUsersService
{
	/*---- 管理员模块开始 ----*/
	/**
	 * 保存一条管理员
	 * @param admins	保存对象
	 * @return	json:{"code":"0","info":"","data":{"id":""}}
	 */
	JSONObject saveOneAdminsService(AAdmins admins);
	
	/**
	 * 更新一条管理员
	 * @param admins	保存对象
	 * @return	json:{"code":"0","info":"","data":{"id":""}}
	 */
	JSONObject updateOneAdminsService(AAdmins admins);
	
	/**
	 * 查询一条管理员
	 * @param condMap
	 * @return
	 */
	AAdmins findOneAdminsService(Map<String, Object> condMap);
	
	/**
	 * 查询多条管理员
	 * @param condMap
	 * @return
	 */
	List<AAdmins> findCondListAdminsService(PageInfoUtil pageInfoUtil , Map<String, Object> condMap);
	/*---- 管理员模块结束 ----*/
	
	/*---- 角色模块开始 ----*/
	/**
	 * 保存一条角色
	 * @param role	保存对象
	 * @return	json:{"code":"0","info":"","data":{"id":""}}
	 */
	JSONObject saveOneRoleService(ARole role);
	
	/**
	 * 更新一条角色
	 * @param role	保存对象
	 * @return	json:{"code":"0","info":"","data":{"id":""}}
	 */
	JSONObject updateOneRoleService(ARole role);
	
	/**
	 * 查询一条角色
	 * @param condMap
	 * @return
	 */
	ARole findOneRoleService(Map<String, Object> condMap);
	
	/**
	 * 查询多条角色
	 * @param condMap
	 * @return
	 */
	List<ARole> findCondListRoleService(PageInfoUtil pageInfoUtil , Map<String, Object> condMap);
	/*---- 角色模块结束 ----*/
	
	/*---- 菜单模块开始 ----*/
	/**
	 * 保存一条菜单
	 * @param menu	保存对象
	 * @return	json:{"code":"0","info":"","data":{"id":""}}
	 */
	JSONObject saveOneMenuService(AMenu menu);
	
	/**
	 * 更新一条菜单
	 * @param menu	保存对象
	 * @return	json:{"code":"0","info":"","data":{"id":""}}
	 */
	JSONObject updateOneMenuService(AMenu menu);
	
	/**
	 * 查询一条菜单
	 * @param condMap
	 * @return
	 */
	AMenu findOneMenuService(Map<String, Object> condMap);
	
	/**
	 * 查询多条菜单
	 * @param condMap
	 * @return
	 */
	List<AMenu> findCondListMenuService(PageInfoUtil pageInfoUtil , Map<String, Object> condMap);
	
	/**
	 * 生成树形结构的菜单
	 * @param menu 如果传了,列出当前菜单的树形结构(向下)
	 * @return j-UI要求的字符串
	 */
	String menuTreeService(AMenu menu);
	/*---- 菜单模块结束 ----*/

}
